/**
 * 闭包
 */
(function () {

    // 严格模式
    "use strict";

    angular
        .module('app.hr')
        .controller('AttendanceRecordController', attendanceRecordController);

     attendanceRecordController.$inject = ['$scope', '$state', '$q', '$log', 'NgTableParams', 'Restangular',
        'dialogs', 'ngNotify', 'Tools'];
    /**
     * 控制器
     */
    function attendanceRecordController($scope, $state, $q, $log, NgTableParams, Restangular, dialogs, ngNotify, Tools) {
        // 先赋给vm
        $log.debug('AttendanceRecordController');
        var vm = this;
        // ng-table
        vm.tableParams = new NgTableParams({}, {getData: getData});
        /**
         * 共通查询参数
         * 必须
         */
        vm.query='';
        /**
         * 共通查询
         * 必须
         */
        vm.doSearch = function() {
            vm.tableParams.reload();
        };
        /**
         * 查询数据
         */
        function getData(params) {
            // 定义deferred
            var deferred = $q.defer();
            var size = params.count();
            var page = params.page();
            // 调用查询
            Restangular
                .all('hr')
                .all('attendanceRecord')
                .getList({
                    size: size,
                    page: page,
                    query: vm.query
                })
                .then(function (result) {
                    params.total(result.meta.total);
                    deferred.resolve(result);
                })
                .catch(function (result) {
                    deferred.reject();
                });
            // 返回promise
            return deferred.promise;
        }

        /**
         * 新增按钮
         */
        vm.add = function () {
            // 跳转到新增页面
            $state.go('app.hr.attendancerecord.add');

        };
        /**
         * 编辑
         */
        vm.edit = function (item) {
            $log.debug('edit');
            $state.go('app.hr.attendancerecord.edit', {
                id: item.id
            });

        };
        /**
         * 删除
         */
        vm.remove = function (item) {
            $log.debug('remove');
            dialogs
                .confirm('确认', '要删除指定记录？')
                .result
                .then(function () {
                    //删除
                    Restangular
                        .all('hr')
                        .one('attendanceRecord', item.id)
                        .remove()
                        .then(function (result) {
                            // 刷新画面
                            Tools.reload();
                        })
                        .catch(function (result) {
                            var msg = result.message;
                            ngNotify.set(msg, 'error');
                        });
                });
        };
    }

})();